home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / basic / pbtool.exe / COLORS.BAS < prev    next >
BASIC Source File  |  1991-11-27  |  5KB  |  133 lines

  1. '----------------------------------------------------------
  2. '  PROGRAM: COLORS.BAS         PROGRAMMER: A. KELLETT
  3. '  DATE-WRITTEN: 11/06/91
  4. '  USING POWER BASIC V2.10A
  5. '
  6. '  THIS PROGRAM DISPLAYS THE 15 COLORS AVAILABLE AND ALLOWS
  7. '  PROGRAMMERS TO SEE THE VALUES USED IN "COLOR" STATEMENTS...
  8. '  UPDATE: SPACEBAR TO EXIT NOW WORKS, SAMPLE TEXT DISPLAYED
  9. '          NOW DISPLAYS NAME OF COLORS BEING SHOWN
  10. '  VERSION: 1.02    LAST UPDATED: 11/27/91
  11. '----------------------------------------------------------
  12. $INCLUDE "KEYS.INC"
  13. VERSION$ = "1.02"
  14. ORIGFOR% = 7:ORIGBACK% = 0:REM** USE YOUR DEFAULT COLORS HERE! **
  15. GOSUB COLORNAMES
  16. GOSUB DRAWSCREEN
  17. GOSUB MAINLOOP
  18.  
  19. DELAY .25
  20. LOCATE 20,1:COLOR ORIGFOR%, ORIGBACK%
  21. PRINT USING "   COLORS V \  \ (GIVING AWAY UNMODIFIED COPIES IS FINE WITH THE AUTHOR)";_
  22.    VERSION$
  23. END
  24. '
  25. ' DISPLAY INITIAL SCREEN CHART & COLORS
  26. '----------------------------------------------------------
  27. DRAWSCREEN:
  28.    CLS
  29.    FOR I% = 0 TO 15
  30.      K% = 1
  31.       FOR J% = 0 TO 15
  32.         LOCATE I% + 1, K%
  33.           X$ = STR$(J%)
  34.          IF J% < 10 THEN
  35.             X$ = "0" + RIGHT$(X$,1)
  36.          ELSE
  37.             X$ = RIGHT$(X$,2)
  38.          END IF
  39.          COLOR I%,J%:PRINT X$;
  40.          K% = K% + 2
  41.       NEXT J%
  42.    NEXT I%
  43.    COLOR ORIGFOR%, ORIGBACK%
  44.    LOCATE 1,38:PRINT "╒════════════════════════════╕ ";
  45.    LOCATE 2,38:PRINT "│C O L O R S    -    Andy K. │ ";
  46.    LOCATE 3,38:PRINT "│PLEASE PRESS Esc OR SpaceBar│ ";
  47.    LOCATE 4,38:PRINT "│    OR Enter TO EXIT        │ ";
  48.    LOCATE 5,38:PRINT "│USE THE UP/DOWN ARROWS AND  │ ";
  49.    LOCATE 6,38:PRINT "│LEFT/RIGHT ARROWS TO CHOOSE.│ ";
  50.    LOCATE 7,38:PRINT "╘════════════════════════════╛ ";
  51. RETURN
  52. '
  53. '        LOOP UNTIL USER WANTS TO QUIT
  54. '----------------------------------------------------------
  55. MAINLOOP:
  56.    QUITFLAG%= 0:XCOLUMN% = 1:XLINE% = 1
  57.    OLDCOLUMN% = 0:OLDLINE% = 0:FORE% = 0:BACK% = 0
  58.    WHILE QUITFLAG% = 0
  59.       COLOR FORE%, BACK%:LOCATE 10,38:PRINT "> Sample Text 0123456789?!., <";
  60.       COLOR ORIGFOR%, ORIGBACK%
  61.       LOCATE 12,38:PRINT USING "FOREGROUND: ## \                    \";_
  62.          FORE%, COLORNAME$(FORE% + 1);
  63.       LOCATE 13,38:PRINT USING "BACKGROUND: ## \                    \";_
  64.          BACK%, COLORNAME$(BACK% + 1);
  65.       LOCATE 17,XCOLUMN%:PRINT CHR$(30);CHR$(30);:REM** UP ARROW CHARS **
  66.       LOCATE XLINE%, 33:PRINT CHR$(17);CHR$(17);:REM** LEFT ARROW CHARS **
  67.       '*** LOOP AND GET ANY KEY PRESSED ***
  68.       KY$ = ""
  69.       WHILE KY$ = ""
  70.          KY$ = INKEY$
  71.       WEND
  72.       '*** TEST FOR ANY KEYS WE ARE LOOKING FOR ***
  73.       IF (KY$ = ESC$ OR KY$ = " " OR KY$ = CR$) THEN
  74.          QUITFLAG% = 1
  75.       ELSE
  76.          SELECT CASE KY$
  77.             CASE UPARROW$:
  78.               IF XLINE% > 1 THEN
  79.                   OLDLINE% = XLINE%
  80.                   XLINE% = XLINE% - 1
  81.           LOCATE OLDLINE%,33:PRINT "  ";
  82.                   FORE% = FORE% - 1
  83.                END IF
  84.             CASE DOWNARROW$:
  85.                IF XLINE% < 16 THEN
  86.                   OLDLINE% = XLINE%
  87.           XLINE% = XLINE% + 1
  88.           LOCATE OLDLINE%,33:PRINT "  ";
  89.                   FORE% = FORE% + 1
  90.                END IF
  91.             CASE LEFTARROW$:
  92.                IF XCOLUMN% > 2 THEN
  93.                   OLDCOLUMN% = XCOLUMN%
  94.                   XCOLUMN% = XCOLUMN% - 2
  95.           LOCATE 17, OLDCOLUMN%:PRINT "  ";
  96.                   BACK% = BACK% - 1
  97.                END IF
  98.             CASE RIGHTARROW$:
  99.                IF XCOLUMN% < 30 THEN
  100.                   OLDCOLUMN% = XCOLUMN%
  101.                   XCOLUMN% = XCOLUMN% + 2
  102.           LOCATE 17, OLDCOLUMN%:PRINT  "  ";
  103.                   BACK% = BACK% + 1
  104.                END IF
  105.          END SELECT
  106.       END IF
  107.    WEND
  108. RETURN
  109. '
  110. '
  111. '----------------------------------------------------------
  112. COLORNAMES:
  113.    DIM COLORNAME$(1:16)
  114.    COLORNAME$(1) = "BLACK               "
  115.    COLORNAME$(2) = "BLUE                "
  116.    COLORNAME$(3) = "GREEN               "
  117.    COLORNAME$(4) = "CYAN                "
  118.    COLORNAME$(5) = "RED                 "
  119.    COLORNAME$(6) = "MAGENTA             "
  120.    COLORNAME$(7) = "BROWN               "
  121.    COLORNAME$(8) = "WHITE               "
  122.    COLORNAME$(9) = "GRAY                "
  123.    COLORNAME$(10) = "LIGHT BLUE          "
  124.    COLORNAME$(11) = "LIGHT GREEN         "
  125.    COLORNAME$(12) = "LIGHT CYAN          "
  126.    COLORNAME$(13) = "LIGHT RED           "
  127.    COLORNAME$(14) = "LIGHT MAGENTA       "
  128.    COLORNAME$(15) = "YELLOW              "
  129.    COLORNAME$(16) = "HIGH INTENSITY WHITE"
  130.  
  131. RETURN
  132.  
  133.